From 35708162cc6d11a92c11f7c1e474e6d657f8d684 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 13 Aug 2020 19:21:05 -0400 Subject: [PATCH] Make GtkNativeInterface private We are not sure yet if allowing out-of-tree implementations of GtkNative are a good idea. --- docs/reference/gtk/gtk4-sections.txt | 1 - gtk/gtkdragicon.c | 2 +- gtk/gtkmain.c | 4 ++-- gtk/gtknative.c | 6 +++--- gtk/gtknative.h | 22 +------------------- gtk/gtknativeprivate.h | 31 ++++++++++++++++++++++++++++ gtk/gtkpopover.c | 2 +- gtk/gtktexthandle.c | 1 + gtk/gtktooltip.c | 4 ++-- gtk/gtktooltipwindow.c | 2 +- gtk/gtkwindow.c | 2 +- gtk/inspector/inspect-button.c | 2 +- 12 files changed, 45 insertions(+), 34 deletions(-) create mode 100644 gtk/gtknativeprivate.h diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt index 5b23420daf..7710b7020d 100644 --- a/docs/reference/gtk/gtk4-sections.txt +++ b/docs/reference/gtk/gtk4-sections.txt @@ -7108,7 +7108,6 @@ gtk_root_get_type
gtknative GtkNative -GtkNativeInterface gtk_native_get_for_surface gtk_native_get_surface gtk_native_get_renderer diff --git a/gtk/gtkdragicon.c b/gtk/gtkdragicon.c index 1564042260..5099220d3f 100644 --- a/gtk/gtkdragicon.c +++ b/gtk/gtkdragicon.c @@ -25,7 +25,7 @@ #include "gtkcssstyleprivate.h" #include "gtkcssnodeprivate.h" #include "gtkcsstypesprivate.h" -#include "gtknative.h" +#include "gtknativeprivate.h" #include "gtkpicture.h" #include "gtkcssboxesimplprivate.h" #include "gtkcssnumbervalueprivate.h" diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index b114de5bc0..f59f1403cc 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -1227,7 +1227,7 @@ rewrite_event_for_grabs (GdkEvent *event) } event_widget = gtk_get_event_widget (event); - grab_widget = gtk_native_get_for_surface (grab_surface); + grab_widget = GTK_WIDGET (gtk_native_get_for_surface (grab_surface)); if (grab_widget && gtk_main_get_window_group (grab_widget) != gtk_main_get_window_group (event_widget)) @@ -1990,7 +1990,7 @@ gtk_get_event_widget (GdkEvent *event) surface = gdk_event_get_surface (event); if (surface && !gdk_surface_is_destroyed (surface)) - return gtk_native_get_for_surface (surface); + return GTK_WIDGET (gtk_native_get_for_surface (surface)); return NULL; } diff --git a/gtk/gtknative.c b/gtk/gtknative.c index aa9c0ab9ee..2fab467e92 100644 --- a/gtk/gtknative.c +++ b/gtk/gtknative.c @@ -19,7 +19,7 @@ #include "config.h" -#include "gtknative.h" +#include "gtknativeprivate.h" #include "gtkcssnodeprivate.h" #include "gtkwidgetprivate.h" #include "gdk/gdk-private.h" @@ -146,7 +146,7 @@ gtk_native_check_resize (GtkNative *self) * * Returns: (transfer none): the #GtkNative that is associated with @surface */ -GtkWidget * +GtkNative * gtk_native_get_for_surface (GdkSurface *surface) { GtkWidget *widget; @@ -154,7 +154,7 @@ gtk_native_get_for_surface (GdkSurface *surface) widget = (GtkWidget *)gdk_surface_get_widget (surface); if (widget && GTK_IS_NATIVE (widget)) - return widget; + return GTK_NATIVE (widget); return NULL; } diff --git a/gtk/gtknative.h b/gtk/gtknative.h index ba596e0e9d..c9372a60e9 100644 --- a/gtk/gtknative.h +++ b/gtk/gtknative.h @@ -34,29 +34,9 @@ G_BEGIN_DECLS GDK_AVAILABLE_IN_ALL G_DECLARE_INTERFACE (GtkNative, gtk_native, GTK, NATIVE, GtkWidget) -/** - * GtkNativeIface: - * - * The list of functions that must be implemented for the #GtkNative interface. - */ -struct _GtkNativeInterface -{ - /*< private >*/ - GTypeInterface g_iface; - - /*< public >*/ - GdkSurface * (* get_surface) (GtkNative *self); - GskRenderer * (* get_renderer) (GtkNative *self); - - void (* get_surface_transform) (GtkNative *self, - double *x, - double *y); - - void (* check_resize) (GtkNative *self); -}; GDK_AVAILABLE_IN_ALL -GtkWidget * gtk_native_get_for_surface (GdkSurface *surface); +GtkNative * gtk_native_get_for_surface (GdkSurface *surface); GDK_AVAILABLE_IN_ALL void gtk_native_check_resize (GtkNative *self); diff --git a/gtk/gtknativeprivate.h b/gtk/gtknativeprivate.h new file mode 100644 index 0000000000..6b603361ff --- /dev/null +++ b/gtk/gtknativeprivate.h @@ -0,0 +1,31 @@ +#ifndef __GTK_NATIVE_PRIVATE_H__ +#define __GTK_NATIVE_PRIVATE_H__ + +#include "gtknative.h" + +G_BEGIN_DECLS + +/** + * GtkNativeIface: + * + * The list of functions that must be implemented for the #GtkNative interface. + */ +struct _GtkNativeInterface +{ + /*< private >*/ + GTypeInterface g_iface; + + /*< public >*/ + GdkSurface * (* get_surface) (GtkNative *self); + GskRenderer * (* get_renderer) (GtkNative *self); + + void (* get_surface_transform) (GtkNative *self, + double *x, + double *y); + + void (* check_resize) (GtkNative *self); +}; + +G_END_DECLS + +#endif /* __GTK_NATIVE_PRIVATE_H__ */ diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c index 72a5451647..5130d68ede 100644 --- a/gtk/gtkpopover.c +++ b/gtk/gtkpopover.c @@ -122,7 +122,7 @@ #include "gtkbuildable.h" #include "gtktooltipprivate.h" #include "gtkcssboxesimplprivate.h" -#include "gtknative.h" +#include "gtknativeprivate.h" #include "gtkrender.h" #include "gtkstylecontextprivate.h" diff --git a/gtk/gtktexthandle.c b/gtk/gtktexthandle.c index 9cdf94a75a..1cbd2b04d0 100644 --- a/gtk/gtktexthandle.c +++ b/gtk/gtktexthandle.c @@ -28,6 +28,7 @@ #include "gtkcssboxesimplprivate.h" #include "gtkcssnumbervalueprivate.h" #include "gtkstylecontextprivate.h" +#include "gtknativeprivate.h" #include "gtkintl.h" #include diff --git a/gtk/gtktooltip.c b/gtk/gtktooltip.c index e3011b4d6a..ce17e8d5af 100644 --- a/gtk/gtktooltip.c +++ b/gtk/gtktooltip.c @@ -416,7 +416,7 @@ _gtk_widget_find_at_coords (GdkSurface *surface, g_return_val_if_fail (GDK_IS_SURFACE (surface), NULL); - event_widget = gtk_native_get_for_surface (surface); + event_widget = GTK_WIDGET (gtk_native_get_for_surface (surface)); if (!event_widget) return NULL; @@ -490,7 +490,7 @@ gtk_tooltip_set_surface (GtkTooltip *tooltip, GtkWidget *native; if (surface) - native = gtk_native_get_for_surface (surface); + native = GTK_WIDGET (gtk_native_get_for_surface (surface)); else native = NULL; diff --git a/gtk/gtktooltipwindow.c b/gtk/gtktooltipwindow.c index 877738117c..e4fee76ae1 100644 --- a/gtk/gtktooltipwindow.c +++ b/gtk/gtktooltipwindow.c @@ -37,7 +37,7 @@ #include "gtksizerequest.h" #include "gtkwindowprivate.h" #include "gtkwidgetprivate.h" -#include "gtknative.h" +#include "gtknativeprivate.h" #include "gtkcssboxesimplprivate.h" struct _GtkTooltipWindow diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 031a280b19..fddca6ed44 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -51,7 +51,7 @@ #include "gtkpointerfocusprivate.h" #include "gtkprivate.h" #include "gtkroot.h" -#include "gtknative.h" +#include "gtknativeprivate.h" #include "gtksettings.h" #include "gtkshortcut.h" #include "gtkshortcutcontroller.h" diff --git a/gtk/inspector/inspect-button.c b/gtk/inspector/inspect-button.c index ed5c2d3099..e4006c36c3 100644 --- a/gtk/inspector/inspect-button.c +++ b/gtk/inspector/inspect-button.c @@ -46,7 +46,7 @@ find_widget_at_pointer (GdkDevice *device) pointer_surface = gdk_device_get_surface_at_position (device, NULL, NULL); if (pointer_surface) - widget = gtk_native_get_for_surface (pointer_surface); + widget = GTK_WIDGET (gtk_native_get_for_surface (pointer_surface)); if (widget) { -- 2.30.2